-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SGA 2.0 #16
Open
ModernMAK
wants to merge
59
commits into
staging
Choose a base branch
from
code-review
base: staging
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
SGA 2.0 #16
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Added `open_sga` and `open_sga_from_handle` to allow finer typed control and avoid using "sga://{path}"
Reformatted to make debugging entrypoints easier
Writing is unfortunately, no longer implemented, but open speeds are MUCH faster. Perhaps at a later date, mmap could be used to avoid the multitude of seeks done to read the data lazily
Added specific hashing errors Check / Validate separation; `check` returns True if the hash matches, `validate` raises an error if the hash does not match.
Better error when writing bytes packing / unpacking string improvements
Refactor names of fields Implement slicing for ToC Area
Black fixes
`item` to `index`
they are functionally the same (in the tool) so I wouldn't have known without modpackager
We also drop lazyio; it was refactored into core and was never dropped here
No longer used; plugins manage their own filesystem implementations
Plugins specify their own FS implementation; only require a common interface
Errors are now defined in errors Hashtools no longer exposes 'T' typevar Raise more specific error on validate_magic_word
- Refactor _validate_magic_word to serialization - Fix Hashable not including bytearray - Added protocol for specifying Hasher's hash function - Hasher now acts as an instance instead of a class - Test Cases for hashtools
This can't be automated without a separate script; and was mostly for me to know that I need to bump the Major SemVer
Empty Test Case
check to prevent permission error when treating a file as a folder in the path
Currently, we don't have a universal 'save' function I could add it to the EssenceFS ABC, but until I know how to properly pack other formats; I think this is a safe bet to have packers by version specific
Cannot test issue-39 without an SGA plugin; move to SGA v2
Inching closer to a valid release It is good to do this; as I get to see 'bugs' or issues in the codebase that look/feel like code smells
Specifying Types Applying Black Removing unnecessary ellipsis Working around mypy complainingabout intended codesmells (None for non-nullable types to raise errors when classvars aren't set)
This should prevent accidentally comiting an init for the namespaces Pycharm really likes to disrespect namespace packages
I'm still flip-flopping on defining a concrete FS in Core On one hand; I want plugins to specify their own On the other hand; I dont want to copy-paste the 'tree-like' thing I have in SGA-V2 I like the lazy/mem solution I have going on; its just coupling it to the plugin spec thats the problem By making essencfs a package; I can add a lazyfs module and copy the code from SGA-V2 to here
Instead of using setup.py, setup.cfg and pyproject.toml
Add a bunch of `type:ignore` directives to allow mypy to pass. It shouldn't be too much of an issue; I believe it's more of a 'me-not understanding how to properly type' issue than a the type-checker is catching errors issue.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
A rework for the SGA core, which lets SGA's define their own filesystems so long as they implement a few core methods.
This will reduce the dependency between plugins, while hopefully maintaining core compatibility.